Conditions | 3 |
Total Lines | 20 |
Code Lines | 13 |
Lines | 0 |
Ratio | 0 % |
Tests | 8 |
CRAP Score | 3 |
Changes | 0 |
1 | export default function getByKey(original, key, defaultValue) { |
||
2 | 3 | const keys = key.split('.'); |
|
3 | |||
4 | 3 | let reference = original; |
|
5 | |||
6 | 3 | while (keys.length > 0) { |
|
7 | 4 | const referenceKey = keys.shift(); |
|
8 | |||
9 | 4 | if ( |
|
10 | reference === null || |
||
11 | reference === undefined || |
||
12 | !Object.prototype.hasOwnProperty.call(reference, referenceKey) |
||
13 | ) { |
||
14 | 2 | return defaultValue; |
|
15 | } |
||
16 | 2 | reference = reference[referenceKey]; |
|
17 | } |
||
18 | |||
19 | 1 | return reference; |
|
20 | } |
||
21 |